专利摘要:
本發明揭示一種記憶體控制器和一動態隨機存取記憶體(DRAM)介面。該記憶體控制器實作用於該DRAM介面的信號。該DRAM介面包括一差動時脈信號、一未校準的平行命令匯流排及一高速序列位址匯流排。該命令匯流排可用於在開機時啟始與該記憶體裝置的通訊,並啟始該位址匯流排的校準。
公开号:TW201324164A
申请号:TW101131350
申请日:2012-08-29
公开日:2013-06-16
发明作者:Alok Gupta;Barry A Wagner
申请人:Nvidia Corp;
IPC主号:G06F13-00
专利说明:
記憶體控制器和動態隨機存取記憶體介面
本發明概略關於一種記憶體介面,尤指一種記憶體控制器和一動態隨機存取記憶體(DRAM,Dynamic Random Access Memory)介面。
目前的標準記憶體介面基本上實作一平行命令與位址匯流排。例如,DDR3 SDRAM的JEDEC規格對於總共24個接腳當中定義了16個位址接腳(A0-A15)、3個庫位址接腳(BA0-BA2)、及5個命令接腳(CS#、CKE#、RAS#、CAS#、WE#)。GDDR5 SGRAM的JEDEC規格對於總共15個接腳當中定義14個位址接腳(A0-A12,加上RFU(保留))及4個庫位址接腳(BA0-BA3)(經由雙重資料速率定址而共用9個實體接腳)、一位址匯流排倒反接腳(ABI#)、及5個命令接腳(CS#、CKE#、RAS#、CAS#、WE#)。
其它種類的介面實作一高速序列介面。例如,DisplayPort®和快速周邊組件互連(PCIe,Peripheral Component Interconnect Express®)對於命令與資料傳輸具有一或多條路線(通訊之差動信號)。但是,該等序列介面基本上需要大量的校準,藉以提供資料傳輸之必要的頻寬。例如,PCIe標準定義一鏈路訓練序列,其必須在資料可於該序列鏈路之上傳送之前來執行。該鏈路訓練序列可找出在該鏈路中的路線數目、該鏈路的最高速率及該鏈路的該等實體特性,例如每一路線的時序偏斜。該序列鏈路需要於該鏈路可用高速作業之前決定這些參數,同時可維持該資料傳輸的準確性。這些介面亦需要一低速旁頻帶通訊頻道來啟始校準,例如在DisplayPort®中的該輔助頻道。
習用記憶體介面的一個缺點為該平行命令與位址匯流排需要大量的互連。該記憶體控制器與該記憶體裝置之間的路由可能變得複雜,並需要在該印刷電路板之配線當中有大量的實體空間。雖然切換到一純序列命令與位址匯流排可以降低所需要的互連數目,大量校準之需求即造成在開機時於該鏈路之上可以傳送任何資料之前的潛時。再者,可能需要一側頻帶通訊頻道,藉以校準該序列鏈路,其可加入於正常作業期間未使用到的額外互連。
如前所述,本技術中需要一種改良的技術來傳送命令與位址至一記憶體裝置。
本發明一具體實施例提出一種設置成與一記憶體裝置通訊的一記憶體介面。該記憶體介面包括一用於傳送一參考時脈信號至該記憶體裝置的差動時脈頻道、一用於傳送一或多個指令至該記憶體裝置的未校準平行命令匯流排、及一用於傳送一或多個位址至該記憶體裝置的序列位址匯流排,其中每一位址可識別在該記憶體裝置中的一位置。
本發明另一具體實施例提出一種系統,其中包括一記憶體裝置、及設置成與該記憶體裝置進行通訊的一記憶體介面。該記憶體介面包括一用於傳送一參考時脈信號至該記憶體裝置的差動時脈頻道、一用於傳送一或多個指令至該記憶體裝置的未校準平行命令匯流排、及一用於傳送一或多個位址至該記憶體裝置的序列位址匯流排,其中每一位址可識別在該記憶體裝置中的一位置。
本發明又另一具體實施例提出一種用於與一記憶體裝置進行通訊的方法。該方法包括以下步驟:經由一差動時脈頻道傳送一參考時脈信號至該記憶體裝置、經由一未校準的平行命令匯流排傳送一或多個指令至該記憶體裝置、及經由一序列位址匯流排傳送一或多個位址至該記憶體裝置,其中每一位址可識別在該記憶體裝置中的一位置。
所揭示的該技術之一種好處為傳送命令與位址至該記憶體裝置所需要的互連數目相對於產業標準平行介面而言可以減少。此外,藉由將該命令匯流排與該位址匯流排隔開,可使用小的未校準平行命令匯流排來啟始該序列位址匯流排的校準,藉以排除需要一於正常作業期間不會使用到的一獨立的低速側頻帶通訊頻道。
在以下的說明中,許多特定細節即被提出來提供對於本發明之更為完整的瞭解。但是本技術專業人士將可瞭解到本發明可不利用一或多個這些特定細節來實施。在其它實例中,並未說明熟知的特徵,藉以避免混淆本發明。
系統概述
第一圖例示設置成實作本發明一或多種態樣之一電腦系統100的方塊圖。電腦系統100包括一中央處理單元(CPU,Central Processing Unit)102與一系統記憶體104,其經由包括一記憶體橋接器105進行通訊。記憶體橋接器105,例如為一北橋晶片,其經由一匯流排或其它通訊路徑(例如超輸送(HyperTransport)鏈路)連接至一輸入/輸出(I/O,Input/Output)橋接器107。I/O橋接器107,例如為一南橋晶片,其接收來自一或多個使用者輸入裝置108(例如鍵盤、滑鼠)的使用者輸入,並經由記憶體橋接器105轉送該輸入到CPU 102。一平行處理子系統112經由一匯流排或其它通訊路徑(例如快速周邊組件互連(PCI Express)、加速圖形通訊埠或超輸送(HyperTransport)鏈路)耦合至記憶體橋接器105;在一具體實施例中,平行處理子系統112為一圖形子系統,其傳遞像素到一顯示裝置110(例如一習用陰極射線管(CRT,Cathode Ray Tube)或液晶顯示器(LCD,Liquid Crystal Dispaly)式的監視器)。一系統碟114亦連接至I/O橋接器107。一開關116提供I/O橋接器107與像是網路轉接器118與多種嵌入卡120及121之其它組件之間的連接。其它組件(未明確顯示),包括有USB或其它埠連接、CD驅動器、DVD驅動器、薄膜記錄裝置及類似者,其亦可連接至I/O橋接器107。互連第一圖中該等多種組件的通訊路徑可使用任何適當的協定來實作,例如周邊組件互連(PCI,Peripheral Component Interconnect)、快速周邊組件互連(PCI Express)、加速圖形通訊埠(AGP,Accelerated Graphics Port)、超輸送(HyperTransport)或任何其它匯流排或點對點通訊協定及不同裝置之間的連接,皆可使用如本技術中所知的不同協定。
在一具體實施例中,平行處理子系統112加入可針對圖形及視訊處理最佳化的電路,其包括例如視訊輸出電路,且構成一圖形處理單元(GPU,Graphics Processing Unit)。在另一具體實施例中,平行處理子系統112加入可針對一般性目的處理最佳化的電路,而可保留底層的運算架構,在此處會有更為詳細的說明。在又另一具體實施例中,平行處理子系統112可被整合於一或多個其它系統元件,例如記憶體橋接器105、CPU 102及I/O橋接器107而形成一系統上晶片(SoC,System On Chip)。
將可瞭解到此處所示的系統僅為例示性,其有可能有多種變化及修正。該連接拓樸,包括橋接器的數目與配置,CPU 102的數目及平行處理子系統112的數目皆可視需要修改。例如,在一些具體實施例中,系統記憶體104直接連接至CPU 102而非透過一橋接器耦接,而其它裝置透過記憶體橋接器105及CPU 102與系統記憶體104進行通訊。在其它可替代的拓樸中,平行處理子系統112連接至I/O橋接器107或直接連接至CPU 102,而非連接至記憶體橋接器105。在又其它具體實施例中,I/O橋接器107及記憶體橋接器105可被整合到一單一晶片當中。大型具體實施例可包括兩個或更多的CPU 102及兩個或更多的平行處理子系統112。此處所示的該等特定組件皆為選擇性的;例如其可支援任何數目的嵌入卡或周邊裝置。在一些具體實施例中,開關116被省略,且網路轉接器118及嵌入卡120、121直接連接至I/O橋接器107。
第二圖例示根據本發明一具體實施例之一平行處理子系統112。如所示,平行處理子系統112包括一或多個平行處理單元(PPU,Parallel Processing Unit)202,其每一者耦合於一局部平行處理(PP,Parallel Processing)記憶體204。概言之,一平行處理子系統112包括數目為U的PPU,其中U 1。(在此處,類似物件的多個實例標示為辨識該物件之參考編號,而括號中的數目辨識所需要的實例)。PPU 202及平行處理記憶體204可以使用一或多個積體電路裝置來實作,例如可程式化處理器,特殊應用積體電路(ASIC,Application Specific Integrated Circuits),或記憶體裝置,或以任何其它技術上可行的方式來實作。
請再次參照第一圖,在一些具體實施例中,平行處理子系統112中部份或所有的PPU 202為具有顯像管線的圖形處理器,其能夠設置成關聯於經由記憶體橋接器105自CPU 102及/或系統記憶體104所供應的圖形資料來產生像素資料的多種工作。PPU 202設置成與局部平行處理記憶體204互動(其能夠做為圖形記憶體,其包括例如一習用像框緩衝器),藉以儲存及更新像素資料、傳遞像素資料到顯示裝置110及類似者。在一些具體實施例中,平行處理子系統112可以包括可操作為圖形處理器的一或多個PPU 202,及用於通用型運算的一或多個其它PPU 202。該等PPU可為相同或不同,且每一PPU可以具有其本身專屬的平行處理記憶體裝置或無專屬的平行處理記憶體裝置。一或多個PPU 202可以輸出資料到顯示裝置110,或每個PPU 202可以輸出資料到一或多個顯示裝置110。
在作業中,CPU 102為電腦系統100的主控處理器,其控制及協調其它系統組件的作業。特別是CPU 102發出控制PPU 202之作業的命令。在一些具體實施例中,CPU 102對每一PPU 202寫入一命令串流至一推入緩衝器(未明確示於第一圖或第二圖中),其可位於系統記憶體104、平行處理記憶體204或可同時由CPU 102與PPU 202存取的其它儲存位置。一推入緩衝器為一種可同時由CPU 102與PPU 202存取的記憶體緩衝器。CPU 102寫入一命令串流與圖形資料至該推入緩衝器。PPU 202自該推入緩衝器讀取該命令串流,然後相對於CPU 102的作業為非同步地執行命令。
現在請回頭參照第二圖,每一PPU 202包括一輸入/輸出(I/O,Input/Output)單元205,其可與電腦系統100的其餘部份進行通訊。在一些具體實施例中,平行處理子系統112實作成一嵌入卡,其可被插入到電腦系統100的一擴充槽中。在其它具體實施例中,一PPU 202可與一匯流排橋接器被整合在一單一晶片上,例如記憶體橋接器105或I/O橋接器107。在又其它的具體實施例中,PPU 202之部份或所有的元件可與CPU 102被整合在一單一晶片上。
I/O單元205產生用於傳輸至CPU 102的封包(或其它信號),且亦自CPU 102接收所有進入的封包(或其它信號)、導引該等進入封包到PPU 202的適當組件。例如,關於處理工作的命令可被導引到一主機介面206,而關於記憶體作業的命令(例如自平行處理記憶體204讀取或寫入其中)可被導引到一記憶體交叉單元210。主機介面206讀取每一推入緩衝器,並輸出由該推入緩衝器指定的該工作至一前端部212。
每一PPU 202較佳地是實作一高度平行的處理架構。如詳細所示,PPU 202(0)包括一處理叢集陣列230,其包括數目為C的通用處理叢集(GPCs,General Processing Clusters)208,其中C 1。每一GPC 208能夠同時執行大量(例如數百或數千)的執行緒,其中每個執行緒為一程式的一實例。在多種應用中,不同的GPC 208可分配來處理不同種類的程式,或執行不同種類的運算。例如,在一繪圖應用中,第一組GPC 208可分配來執行鑲嵌作業,並產生補片的基元拓樸,而第二組GPC 208可分配來執行鑲嵌遮影,藉以評估該等基元拓樸的補片參數,並決定頂點位置及其它每個頂點的屬性。GPC 208的分配可依據每種程式或運算所提升的工作負荷而改變。
GPC 208經由一工作分配單元200接收要被執行的處理工作,其自前端單元212接收定義處理工作的命令。處理工作包括到要被處理之資料的索引,例如表面(補片)資料、基元資料、頂點資料及/或像素資料,以及定義該資料要被如何處理之狀態參數及命令(例如要執行的是那一個程式)。工作分配單元200可設置成提取對應於該等工作之該等索引、或工作分配單元200可自前端部212接收該等索引。前端部212確保GPC 208於由該推入緩衝器指定的該處理被初始化之前被設置成一有效狀態。
當PPU 202用於圖形處理時,例如每個補片之處理工作負荷被大致區分成同等大小的工作以進行分配該鑲嵌處理至多個GPC 208。一工作分配單元200可設置成以能夠提供工作至多個GPC 208進行處理的頻率來產生工作。相反地,在習用系統中,處理基本上係由一單一處理引擎做處理,而該等其它處理引擎維持閒置,並在開始他們的處理工作之前等待該單一處理引擎完成其工作。在本發明一些具體實施例中,GPC 208的一些部份設置成執行不同種類的處理。例如,一第一部份可設置成執行頂點遮影及拓樸產生,一第二部份可設置成執行鑲嵌及幾何遮影,而第三部份可設置成執行螢幕空間中的像素遮影以產生一顯像的影像。由GPC 208產生的中間資料可被儲存在緩衝器中,以允許該中間資料於GPC 208之間傳送做進一步處理。
GPC 208中任何一者可處理要被寫入到平行處理記憶體204內DRAM模組220中任何一者的資料。交叉單元210設置成導引每一GPC 208之該輸出至記憶體介面214之該輸入或另一GPC 208做進一步處理。GPC 208經由交叉單元210與記憶體介面214進行通訊,以自多個外部記憶體裝置讀取或寫入其中。在一具體實施例中,交叉單元210具有到記憶體介面214的一連接來與I/O單元205進行通訊,以及到局部平行處理記憶體204的一連接,藉此使得不同GPC 208內該等處理核心能夠與系統記憶體104或並非位在PPU 202局部之其它記憶體進行通訊。在第二圖所示的該具體實施例中,交叉單元210直接連接於I/O單元205。交叉單元210可使用虛擬頻道來隔開GPC 208與記憶體介面214之間的流量串流。
再次地,GPC 208可被程式化來執行關於許多種應用之處理工作,其中包括但不限於線性及非線性資料轉換、影片及/或聲音資料的過濾、模型化作業(例如應用物理定律來決定物體的位置、速度及其它屬性)、影像顯像作業(例如鑲嵌遮影器、頂點遮影器、幾何遮影器及/或像素遮影器程式)等等。PPU 202可將來自系統記憶體104及/或局部平行處理記憶體204轉移資料到內部(晶片上)記憶體、處理該資料及將結果資料寫回到系統記憶體104及/或局部平行處理記憶體204,其中這些資料可由其它系統組件存取,包括CPU 102或另一個平行處理子系統112。
一PPU 202可具有任何數量的局部平行處理記憶體204,並可以任何的組合來使用局部記憶體及系統記憶體。例如,一PPU 202可為在一統一記憶體架構(UMA,Unified Memory Architecture)具體實施例中的一圖形處理器。在這些具體實施例中,將可提供少數或沒有專屬的圖形(平行處理)記憶體,且PPU 202將專有地或大致專有地使用系統記憶體。在UMA具體實施例中,一PPU 202可被整合到一橋接器晶片中或處理器晶片中,或提供成具有一高速鏈路(例如PCI-EXPRESS)之一分離的晶片,其經由一橋接器晶片或其它通訊手段連接PPU 202到系統記憶體。
如上所述,任何數目的PPU 202可被包括在一平行處理子系統112中。例如,多個PPU 202可被提供在一單一嵌入卡上,或多個嵌入卡可被連接至記憶體橋接器105,或一或多個PPU 202可被整合到一橋接器晶片中。在一多PPU系統中,PPU 202可彼此相同或彼此不相同。例如,不同的PPU 202可具有不同數目的處理核心、不同數量的局部平行處理記憶體等等。當存在有多個PPU 202時,那些PPU可平行地作業而以高於一單一PPU 202所可能的流量來處理資料。加入有一或多個PPU 202之系統可實作成多種組態及形式因子,其中包括桌上型、膝上型或掌上型個人電腦、伺服器、工作站、遊戲主機、嵌入式系統及類似者。
記憶體介面
第三圖例示根據本發明一具體實施例之一記憶體介面的一部份。在習用的記憶體介面中,例如JEDEC DDE3 SDRAM介面,該命令匯流排與該位址匯流排為一單端平行介面。例如,DDR3 SDRAM包括5個命令接腳與19個位址接腳(16個位址接腳與3個庫位址接腳)。每一互連為單向地由該記憶體介面至該DRAM模組。
如第三圖所示,記憶體介面214實作一差動時脈信號(CK/CK#)312、一單端點對點或點對多點命令匯流排314及一差動高速點對點序列位址匯流排316。時脈信號312類似於該等多種DDRx介面(即DDR2、DDR3等)之該等差動時脈信號。在一具體實施例中,命令匯流排314包括5個互連,例如在DDR3 SDRAM介面中的CS#、RAS#、CAS#、WE#命令信號,但其具有不同的編碼。將可瞭解到在命令匯流排314中可包括任何數目(N)的互連。該等互連的數目可被最佳化來反應出命令匯流排314上可被編碼的命令之總數。例如,3個互連可使得最多到8個命令來由該命令匯流排編碼。在一具體實施例中,位址匯流排316為一高速點對點差動序列鏈路。換言之,位址匯流排316包括連接於記憶體介面214與DRAM模組220之間的兩個互連。在另一具體實施例中,位址匯流排316的頻寬可藉由加入額外的點對點差動序列鏈路來調整大小。
位址匯流排316在開機時被校準,藉以於高頻率時可靠地運作。利用習用的序列命令/位址匯流排,基本上包括一低速側頻帶通訊頻道藉以在校準之前與DRAM模組220進行通訊。但是,在第三圖所示的記憶體介面214中,命令匯流排314之設計為開機時立即可使用而不需要任何的校準。因此,所有的序列鏈路訓練可經由命令匯流排314上發出的命令來執行,而不需要一獨立的側頻帶通訊頻道。例如,記憶體介面214可於命令匯流排314上傳送一命令至DRAM模組220,以指示DRAM模組220開始一位址鏈路訓練序列。然後記憶體介面214經由位址匯流排316傳送一訓練樣式序列(即一預先定義的位元序列)至DRAM模組220。DRAM模組220接收該等訓練樣式,並經由一資料匯流排(未示出)傳送該等收到的樣式回到該記憶體介面。DRAM模組220可儲存於位址匯流排316上傳送的該等訓練樣式,其要稍後藉由經由命令匯流排314發出命令而由記憶體介面214讀取。記憶體介面214分析由DRAM模組220收到的該資料以決定要用於在位址匯流排316上傳送資料的時序資訊與參數。記憶體介面214可使用不同的傳輸參數來重複該位址鏈路訓練序列。一旦記憶體介面214已經完成該位址鏈路訓練序列,高速位址匯流排316可用於傳送位址至DRAM模組220。
較佳地是,命令匯流排314係用於在正常作業期間傳送命令至DRAM模組220。不像是實作一側頻帶發信介面來校準該序列鏈路的習用序列記憶體介面,記憶體介面214經由命令匯流排314傳送命令來初始化位址匯流排316。此外,於正常作業期間命令經由命令匯流排314傳送至DRAM模組220,藉此釋放出該序列鏈路中當命令與位址皆經由相同的序列鏈路傳送時所需要的額外頻寬。在一具體實施例中,命令係實質上與經由位址匯流排316傳送的位址同時地經由命令匯流排314傳送。換言之,一命令於經由位址匯流排316的該位址中至少一部份為相同的時脈循環期間經由命令匯流排314被傳送。在其它具體實施例中,命令係經由偏離於(即不在相同時脈循環中)經由位址匯流排316傳送之該等位址的命令匯流排314來傳送。將可瞭解到上述做為平行處理子系統112之一部份的記憶體介面214與DRAM模組220亦可經由其它種類的記憶體介面來實作。例如,記憶體橋接器105可實作記憶體介面214來與系統記憶體104進行通訊。此外,在其它具體實施例中,平行處理記憶體可包括兩個或更多的DRAM模組220,而對於每一DRAM模組220可包括一獨立的記憶體介面。在其它具體實施例中,如下所述,一單一記憶體介面可經由一邏輯裝置連接至多個DRAM模組220。在另外其它的具體實施例中,該記憶體裝置可為一不同種類的記憶體,例如MRAM、FRAM或SRAM記憶體裝置,而本揭示內容不應視為限制成僅有DRAM記憶體裝置之實作。
第四圖例示根據本發明一具體實施例之包括複數個DRAM模組220的一平行處理記憶體204。如第四圖所示,除了複數個DRAM模組220之外,在平行處理記憶體204中可包括一邏輯裝置410。邏輯裝置410提供一介面給記憶體介面214。邏輯裝置410接收時脈信號312、經由命令匯流排314傳送的命令及由位址匯流排316傳送的位址。雖然未明確顯示出,時脈信號312被提供給每一個DRAM模組220。在一具體實施例中,邏輯裝置410包括一時脈扇出緩衝器,其可提供足夠的電力來供應一時脈信號給最高的8個個別的DRAM模組220。
在一具體實施例中,由邏輯裝置410接收的該等命令經由一共用平行匯流排412傳送至每一個DRAM模組220。由邏輯裝置410接收的該等位址可經由個別的序列鏈路(例如416(0)、416(1)、...及416(J))傳送至對應的DRAM模組220。例如,邏輯裝置410可包含一電路,其可分析經由命令匯流排314接收的該命令來決定由該特定命令所辨識出的是那一個DRAM模組220。該命令可用於控制邏輯裝置410內的一解多工器,其連接位址匯流排316至對應於由該命令所辨識的DRAM模組220的序列鏈路416(0)到416(J)當中的一者。因此,該命令經由共用平行匯流排412被轉送至正確的DRAM模組220,而該位址經由序列鏈路416(0)到416(J)當中的一者被轉送到正確的DRAM模組220。
將可瞭解到記憶體介面214可利用以上配合第三圖所敘述的該介面(即平行命令介面加上用於位址的一高速差動序列介面),而邏輯裝置410後方的該介面可以對每一DRAM模組220實作一不同種類的介面。例如,在一具體實施例中,邏輯裝置410可經由類似於JEDEC DDR3 SDRAM規格中所敘述的該介面之一平行匯流排介面而被連接至每一DRAM模組220。雖然該DDR3 SDRAM規格被限制到一特定頻寬,邏輯裝置410的該頻寬可較大,因為多項作業可由邏輯裝置410緩衝化,並平行地傳送至不同的DRAM模組220。因此,記憶體介面214與CPU 102之間的表觀頻寬將遠大於任何個別DRAM模組220可使用的該頻寬。
第五圖例示根據本發明另一具體實施例之包括複數個DRAM模組220的一平行處理記憶體204。如所示,平行處理記憶體204包括一連接至記憶體介面214的邏輯裝置510。邏輯裝置510類似於邏輯裝置410,除了DRAM模組220係包括在邏輯裝置510之內。
換言之,當在第四圖的平行處理記憶體204中DRAM模組220可為經由一印刷電路板而耦合至邏輯裝置410的個別積體電路時,第五圖的平行處理記憶體204可包括一單一積體電路,其可實作實施在邏輯裝置410中的該邏輯以及個別的DRAM模組220。然後耦合至邏輯裝置510的該等多個信號之每一者經由該積體電路內的互連被導引至對應的DRAM模組220。
第六圖提出根據本發明一具體實施例用於初始化一記憶體介面214之方法的流程圖。雖然該等方法步驟係配合第一圖到第五圖之該等系統做說明,本技術專業人士將可瞭解到設置成以任何順序執行該等方法步驟的任何系統皆在本發明之範疇內。
該方法開始於步驟610,其中GPU 240經由一命令匯流排314傳送一命令至一平行處理記憶體204,藉以開始一高速差動序列位址匯流排316的鏈路訓練例式。在一具體實施例中,該命令指示給平行處理記憶體204一訓練樣式序列將要在位址匯流排316上由GPU 240傳送。平行處理記憶體204設置成將位址匯流排316上收到的該資料儲存在一或多個鏈路訓練暫存器中。在步驟612,GPU 240經由位址匯流排316傳送一訓練符號序列至平行處理記憶體204。平行處理記憶體204將該收到的資料儲存在該鏈路訓練暫存器中。在步驟614,GPU 240傳送一命令至平行處理記憶體204,以要求讀取儲存在該等鏈路訓練暫存器中的該收到的資料。平行處理記憶體204經由該資料匯流排傳送該收到的資料至GPU 240,其類似於一正常的記憶體讀取作業。在其它具體實施例中,該資料可經由其它互連被傳送至GPU 240。
在步驟616,GPU 240分析自該等鏈路訓練暫存器讀取的該等數值以決定位址匯流排316的組態參數。例如,GPU 240可決定在步驟612中傳送至平行處理記憶體204的該資料是否符合在步驟614中由平行處理記憶體204接收的該資料。在步驟618,GPU 240決定是否要傳送一新的訓練符號序列至平行處理記憶體204。在一具體實施例中,如果傳送至平行處理記憶體204的該資料不符合自平行處理記憶體204讀取的該資料,則GPU 240將調整位址匯流排316的組態,並藉由回到步驟612經由該序列鏈路重新傳送該鏈路訓練序列,如上所述。在另一具體實施例中,GPU 240實作一狀態機器來設置該位址匯流排。只要該狀態未指明該鏈路訓練已完成,則GPU 240基於該目前狀態傳送一新的訓練符號序列,且方法600回到步驟612。
然而,如果GPU 240決定該鏈路訓練已完成,則方法600進行至步驟620,其中GPU 240轉換該記憶體介面至一正常操作模式。在該正常操作模式中,GPU 240可以分別在命令匯流排314與位址匯流排316上傳送用於記憶體作業的命令與位址至平行處理記憶體204。然後方法600即終止。
總而言之,該揭示的技術可使得一GPU經由一平行命令匯流排與一高速序列位址匯流排傳送命令與位址至一記憶體裝置。該平行命令匯流排可用於在開機時啟始與該記憶體裝置的通訊。另外,啟始該序列位址匯流排之校準的命令經由該平行命令匯流排被傳送至該記憶體裝置。一旦該裝置被校準,可重新開始正常作業,其中命令係經由該平行命令匯流排傳送,而位址係經由該序列位址匯流排傳送。
所揭示的該技術之一種好處為傳送命令與位址至該記憶體裝置所需要的互連數目相對於產業標準平行介面而言可以減少。此外,藉由將該命令匯流排與該位址匯流排隔開,可使用小的平行命令匯流排來啟始該序列位址匯流排的校準,藉以排除需要一於正常作業期間不會使用到的一獨立的低速側頻帶通訊頻道。
前述係關於本發明之具體實施例,本發明之其它及進一步的具體實施例皆可進行,而並不背離其基本範疇。例如,本發明之態樣可實作成硬體或軟體,或是硬體及軟體的組合當中。本發明一具體實施例可以實作成由一電腦系統使用的一程式產品。該程式產品的程式定義該等具體實施例的功能(包括此處所述的方法),並可包含在多種電腦可讀取儲存媒體上。例示性的電腦可讀取儲存媒體包括但不限於:(i)不可寫入儲存媒體(例如在一電腦內唯讀記憶體裝置,例如可由CD-ROM讀取的CD-ROM碟片、快閃記憶體、ROM晶片,或任何其它種類的固態非揮發性半導體記憶體),其上可永久儲存資訊;及(ii)可寫入儲存媒體(例如在一磁碟機內的軟碟片或硬碟機,或任何種類的固態隨機存取半導體記憶體),其上可儲存可改變的資訊。這些電腦可讀取儲存媒體當承載關於本發明之該等功能的電腦可讀取指令時為本發明之具體實施例。
基於前述內容,本發明之範圍係由以下的該等申請專利範圍所決定。
100‧‧‧電腦系統
102‧‧‧中央處理單元
104‧‧‧系統記憶體
105‧‧‧記憶體橋接器
107‧‧‧輸入/輸出橋接器
108‧‧‧使用者輸入裝置
110‧‧‧顯示裝置
112‧‧‧平行處理子系統
114‧‧‧系統碟
116‧‧‧開關
118‧‧‧網路轉接器
120‧‧‧嵌入卡
121‧‧‧嵌入卡
200‧‧‧工作分配單元
202‧‧‧平行處理單元
204‧‧‧平行處理記憶體
205‧‧‧輸入/輸出單元
206‧‧‧主機界面
208‧‧‧通用處理叢集
210‧‧‧記憶體交叉單元
212‧‧‧前端部,前端單元
214‧‧‧記憶體介面
220‧‧‧動態隨機存取記憶體模組
230‧‧‧處理叢集陣列
240‧‧‧圖形處理單元
312‧‧‧差動時脈信號
314‧‧‧命令匯流排
316‧‧‧序列位址匯流排
410‧‧‧邏輯裝置
412‧‧‧共用平行匯流排
416‧‧‧序列鏈路
510‧‧‧邏輯裝置
所以,可以詳細瞭解本發明上述特徵之方式當中,本發明之一更為特定的說明簡述如上,其可藉由參照到具體實施例來進行,其中一些例示於所附圖式中。但是應要注意到,該等所附圖式僅例示本發明的典型具體實施例,因此其並非要做為本發明之範圍的限制,其可允許其它同等有效的具體實施例。
第一圖例示設置成實作本發明一或多種態樣之電腦系統的方塊圖;第二圖例示根據本發明一具體實施例之一種平行處理子系統;第三圖例示根據本發明一具體實施例之一記憶體介面的一部份;第四圖例示根據本發明一具體實施例之包括複數個DRAM模組的一平行處理記憶體;第五圖例示根據本發明另一具體實施例之包括複數個DRAM模組的一平行處理記憶體;以及第六圖提出根據本發明一具體實施例用於初始化一記憶體介面之方法的流程圖。
214‧‧‧記憶體介面
220‧‧‧動態隨機存取記憶體模組
312‧‧‧差動時脈訊號
314‧‧‧命令匯流排
316‧‧‧序列位址匯流排
权利要求:
Claims (10)
[1] 一種設置成與一記憶體裝置進行通訊的記憶體介面,該記憶體介面包含:一差動時脈頻道,用於傳送一參考時脈信號至該記憶體裝置;一平行命令匯流排,用於傳送一或多個命令至該記憶體裝置,其中該平行命令匯流排不需要在開機時進行校準;以及一序列位址匯流排,用於傳送一或多個位址至該記憶體裝置,其中每一位址識別該記憶體裝置內的一位置。
[2] 如申請專利範圍第1項之記憶體介面,其中經由該平行命令匯流排傳送的一命令係關聯於實質上經由該序列位址匯流排同時傳送的一位址。
[3] 如申請專利範圍第1項之記憶體介面,其中該記憶體裝置包含一動態隨機存取記憶體(DRAM,Dynamic Random Access Memory)。
[4] 如申請專利範圍第1項之記憶體介面,於一開機作業之後但在該等一或多個位址經由該序列位址匯流排傳送之前,該序列位址匯流排經由一鏈路訓練例式做校準。
[5] 如申請專利範圍第4項之記憶體介面,進一步包含一資料匯流排,其中該鏈路訓練例式包含:經由該平行命令匯流排傳送一第一命令至該記憶體裝置以指示一訓練樣式序列要經由該序列位址匯流排傳送至該記憶體裝置;經由該序列位址匯流排傳送該訓練樣式序列至該記憶體裝置,其中該記憶體裝置儲存的數值可反應出在鏈路訓練暫存器中該序列的訓練樣式之接收版本;經由該平行命令匯流排傳送一第二命令至該記憶體裝置以要求存取儲存在該等鏈路訓練暫存器中的該等數值;經由該資料匯流排讀取儲存在該等鏈路訓練暫存器中的該等數值;以及基於自該等鏈路訓練暫存器讀取的該等數值來決定關聯於該序列位址匯流排的傳輸參數。
[6] 如申請專利範圍第1項之記憶體介面,其中該記憶體裝置包含:複數個DRAM模組;以及一邏輯裝置,其耦合至該記憶體介面,且包括有邏輯設置成傳送經由該命令匯流排接收的命令至該等複數個DRAM模組中每一DRAM模組,且對於每一命令,傳送經由該序列位址匯流排接收的一或多個位址至該等複數個DRAM模組中由該命令所辨識的一特定DRAM模組。
[7] 如申請專利範圍第6項之記憶體介面,其中該等複數個DRAM模組被包含在與該邏輯裝置相同的積體電路之內。
[8] 一種系統,該系統包含:一記憶體裝置;以及一記憶體介面,其設置成與該記憶體裝置進行通訊,該記憶體介面包含:一差動時脈頻道,用於傳送一參考時脈信號至該記憶體裝置,一平行命令匯流排,用於傳送一或多個命令至該記憶體裝置,其中該平行命令匯流排不需要在開機時進行校準,以及一序列位址匯流排,用於傳送一或多個位址至該記憶體裝置,其中每一位址識別該記憶體裝置內的一位置。
[9] 如申請專利範圍第8項之系統,其中經由該平行命令匯流排傳送的一命令係關聯於實質上經由該序列位址匯流排同時傳送的一位址。
[10] 一種用於與一記憶體裝置進行通訊之方法,該方法包含:經由一差動時脈頻道傳送一參考時脈信號至該記憶體裝置;經由一平行命令匯流排傳送一或多個命令至該記憶體裝置,其中該平行命令匯流排不需要在開機時進行校準;以及經由一序列位址匯流排傳送一或多個位址至該記憶體裝置,其中每一位址識別該記憶體裝置內的一位置。
类似技术:
公开号 | 公开日 | 专利标题
TWI479321B|2015-04-01|記憶體控制器和動態隨機存取記憶體介面
US8812758B2|2014-08-19|Mechanism to flexibly support multiple device numbers on point-to-point interconnect upstream ports
US8656117B1|2014-02-18|Read completion data management
KR101294687B1|2013-08-09|이종 듀얼 인-라인 메모리 모듈과의 인터페이스를 위한 장치, 시스템 및 방법
TWI639118B|2018-10-21|有不同執行優先程度的計算任務的排程和管理
EP2472409B1|2013-11-13|Input-output module, and method for extending a memory interface for input-output operations
TWI417806B|2013-12-01|單一通過鑲嵌
US20140292771A1|2014-10-02|Techniques for locally modifying draw calls
US20140168242A1|2014-06-19|Techniques for setting up and executing draw calls
US7477257B2|2009-01-13|Apparatus, system, and method for graphics memory hub
JP5127815B2|2013-01-23|Cpuトラフィックを特殊とマークすることによるデッドロックの回避
TWI514146B|2015-12-21|用以降低dram存取的存取粒度之位址位元重新映射方法
US20140019742A1|2014-01-16|Approach for managing state transitions of a data connector
US9830958B2|2017-11-28|Time-multiplexed communication protocol for transmitting a command and address between a memory controller and multi-port memory
TWI556110B|2016-11-01|用於提供存取裝置函數的設備、系統及方法
US8489911B1|2013-07-16|Hardware WCK2CK training engine using meta-EDC sweeping and adjustably accurate voting algorithm for clock phase detection
US9646656B2|2017-05-09|Time-multiplexed communication protocol for transmitting a command and address between a memory controller and multi-port memory
US8489839B1|2013-07-16|Increasing memory capacity of a frame buffer via a memory splitter chip
US20150058524A1|2015-02-26|Bimodal functionality between coherent link and memory expansion
US8935559B2|2015-01-13|System and method for reducing crosstalk in on-chip networks using a contraflow interconnect and offset repeaters
US8380896B2|2013-02-19|Data packer for packing and aligning write data
US9390042B2|2016-07-12|System and method for sending arbitrary packet types across a data connector
US8279231B1|2012-10-02|Bandwidth impedance matching and starvation avoidance by read completion buffer allocation
MCH2007|Intel® 945G/945GZ/945GC/945P/945PL Express Chipset Family
同族专利:
公开号 | 公开日
CN102968393A|2013-03-13|
GB201214735D0|2012-10-03|
DE102012215197A1|2013-02-28|
TWI479321B|2015-04-01|
US8738852B2|2014-05-27|
GB2494257A|2013-03-06|
CN102968393B|2015-07-22|
US20130054884A1|2013-02-28|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
DE10121309B4|2001-05-02|2004-01-29|Infineon Technologies Ag|Testschaltung zum Testen einer zu testenden Schaltung|
US6864896B2|2001-05-15|2005-03-08|Rambus Inc.|Scalable unified memory architecture|
JP2003007081A|2001-06-25|2003-01-10|Mitsubishi Electric Corp|半導体集積回路装置|
JP4159415B2|2002-08-23|2008-10-01|エルピーダメモリ株式会社|メモリモジュール及びメモリシステム|
US7073016B2|2003-10-09|2006-07-04|Micron Technology, Inc.|Random access interface in a serial memory device|
US7444558B2|2003-12-31|2008-10-28|Intel Corporation|Programmable measurement mode for a serial point to point link|
US7221613B2|2004-05-26|2007-05-22|Freescale Semiconductor, Inc.|Memory with serial input/output terminals for address and data and method therefor|
US7299313B2|2004-10-29|2007-11-20|International Business Machines Corporation|System, method and storage medium for a memory subsystem command interface|
US7702839B2|2005-04-12|2010-04-20|Nokia Corporation|Memory interface for volatile and non-volatile memory devices|
US7769942B2|2006-07-27|2010-08-03|Rambus, Inc.|Cross-threaded memory system|
US7405992B2|2006-10-25|2008-07-29|Qimonda North America Corp.|Method and apparatus for communicating command and address signals|
US8433874B2|2006-12-06|2013-04-30|Mosaid Technologies Incorporated|Address assignment and type recognition of serially interconnected memory devices of mixed type|
DE102007049354A1|2007-10-15|2009-04-16|Robert Bosch Gmbh|Verfahren zum Testen eines Adressbusses in einem logischen Baustein|
SG171730A1|2008-11-24|2011-07-28|Certicom Corp|System and method for hardware based security|
CN101546286B|2009-04-30|2012-11-14|北京星网锐捷网络技术有限公司|一种高速串行总线逻辑分析方法和装置|
TWI433150B|2009-07-27|2014-04-01|Sunplus Technology Co Ltd|應用於同步動態隨機存取記憶體介面之資料截取及時序漂移偵測的裝置及方法|
US8775719B2|2009-09-21|2014-07-08|Aplus Flash Technology, Inc.|NAND-based hybrid NVM design that integrates NAND and NOR in 1-die with parallel interface|US8966151B2|2012-03-30|2015-02-24|Spansion Llc|Apparatus and method for a reduced pin countmemory bus interface including a read data strobe signal|
US8787110B2|2012-06-29|2014-07-22|Intel Corporation|Realignment of command slots after clock stop exit|
JP2014183482A|2013-03-19|2014-09-29|Fujitsu Ltd|送受信システム、送信装置、受信装置、及び送受信システムの制御方法|
US10025685B2|2015-03-27|2018-07-17|Intel Corporation|Impedance compensation based on detecting sensor data|
US10025747B2|2015-05-07|2018-07-17|Samsung Electronics Co., Ltd.|I/O channel scrambling/ECC disassociated communication protocol|
US10241942B2|2016-06-28|2019-03-26|Mediatek Inc.|Method and apparatus for memory access|
US10720197B2|2017-11-21|2020-07-21|Samsung Electronics Co., Ltd.|Memory device for supporting command bus training mode and method of operating the same|
US10642535B2|2018-01-23|2020-05-05|International Business Machines Corporation|Register access in a distributed memory buffer system|
法律状态:
优先权:
申请号 | 申请日 | 专利标题
US13/223,004|US8738852B2|2011-08-31|2011-08-31|Memory controller and a dynamic random access memory interface|
[返回顶部]